#ifndef __HASHMAP_H_
#define __HASHMAP_H_

#include <string>
#include<iostream>
class HashMap //键值对
{
public: 
    using ElementType = int;
    HashMap(const int & size);
    void Insert(const std::string& key,const ElementType& value);
    void Remove(const std::string& key);

    ElementType* GetByKey(const std::string& key);
    ElementType& operator[](const std::string& key);
    void show();
    void showByGroup();
private:
    struct Node //节点
    {
        Node(const std::string& key,const ElementType& value):key(key),value(value),next(nullptr){}
        std::string key; //键
        ElementType value; //值
        Node *next; //指向下一个节点的指针
    };
    Node* *array; //数组指针
    const int size; //数组大小
    //哈希函数
    int Hash(const std::string& key);
};



#endif